/**
 * Author@ Cheng Feitian
 * Date: 2020-3-22
 * Description: 函数默认参数
 */

#include <algorithm>
#include <iostream>
#include <string>

using namespace std;
const int maxn = 1024;

//1. 如果我们自己传入数据，就用自己的数据
//2. 如果有多个参数，一旦其中某个形参设置了默认值，则参数列表中其后边的参数也要设置默认值
int func(int a,int b = 10,int c = 10){
    return a + b + c;
}
/**
 * @brief 如果某个位置已经有了默认参数，那么从这个位置往后，从左到右都必须有默认值
 * 
 * @param a 
 * @param b 
 * @param c 
 * @return int 
 */
// int func2(int a,int b = 20,int c){ //error
//     return a + b + c;
// }

//2. 如果函数声明有默认参数，函数实现就不能有默认参数
//声明和实现只能有一个有默认参数
int func2(int a,int b);

int func2(int a = 10,int b = 10){
    return a + b;
}

int main() {

    cout << func(10) << endl;

    cout << func2() << endl;
    return 0;
}
